prompt 门诊费用结算新 SP_SF_BRFY00_JSNEW0 create or replace procedure SP_SF_BRFY00_JSNEW0 ( AD_JZY000 in number ,--结账操作员编码 AS_JZYXM0 in varchar2 ,--结账操作员姓名 AD_JZYKS0 in number ,--结账操作员所在科室 AS_YBDJH0 in varchar2 ,--医保单据流水号 AS_KSRQ00 in varchar2 ,--开始日期 AS_JSRQ00 in varchar2 ,--结束日期 AS_ICKH00 in varchar2 ,--就诊卡号 AD_JFLBID in number ,--病人交费类别ID AD_BRID00 in number ,--病人ID AD_GHID00 in number ,--挂号ID AS_GHH000 in varchar2 ,--病人挂号号 AD_BRZJE0 in number ,--病人费用总金额 AD_JZJE00 in number ,--记账金额 AD_GFJE00 in number ,--公费金额 AD_HJJE00 in number ,--合计应收金额=自付金额-减免金额 AD_JMJE00 in number ,--减免金额 AD_GRZHZF in number ,--个人医疗账户支付(医保返回) AD_TCJJZF in number ,--统筹基金支付(医保返回) AD_ZFJE00 in number ,--自付金额(医保返回) AS_JMYY00 in varchar2 ,--减免原因 AS_YJJXH0 in varchar2 ,--打印在发票上的外部序号 AS_CZBZ00 In varchar2 ,--'0':结算留账留卡,'1':结算清账退卡,'2':结算清账 AS_SFYB00 in varchar2 ,--是否医保病人,'Y':医保 AS_TSBZBH in varchar2 default '0' ,--特殊病人病种 AS_BZJSLX in number default 2 ,--病种结算类型 0:全部费用 1:本病种+挂号费+诊查费 2:本病种+非病种全部费用 3:结算本病种费用 4:只结算非特殊病种费用 AS_SFDYFP in varchar2 default 'Y' ,--是否打印发票,N为否,Y为是 AD_MSTID0 in varchar2 default '' ,--健康通(民生通ID) AD_MSTYE0 in varchar2 default '' ,--健康通(民生通)余额 AS_WBPJLY in varchar2 default '' ,--外部票据来源 02 博思发票 AS_FPDYBZ in varchar2 default '1' ,--发票打印标志 0:结算单 1:正式发票 2:非正式发票 3:发票证明 AS_YBTYPE in varchar2 default '' ,--医保接口标志 -1:自费 0:福建版本 1:国家基线版 AS_JSTYPE in varchar2 default '' ,--结算类型 '0':正式的结算,'1':预结算 AS_SFDZPJ in varchar2 default '0' ,--是否电子票据 0:否 1:是 AS_ID0000 in varchar2 default '' ,--中间表ID=SF_FYXX00_DJH000.ID0000 AS_SFFKJS in varchar2 default '0' ,--是否分开结算 0:不分开 1:分开结算 AS_FKLSH0 in varchar2 default '' ,--分开结算流水号 AS_ZFCFID in number default 0 ,--分开结算自费ID0000 AS_ZFCFJE in number default 0 ,--分开结算自费合计金额 AS_ZFYJZ0 in number default 0 ,--分开结算自费已记账金额 AS_YBCFID in number default 0 ,--分开结算医保ID0000 AS_YBCFJE in number default 0 ,--分开结算医保合计金额 AS_YBYJZ0 in number default 0 ,--分开结算医保已记账金额 AS_INTXML in varchar2 default '' ,--备用xml AS_COMMIT in varchar2 default 'N' ,--是否提交事务 Y:是 N:否 AS_ZXZT00 out varchar2 ,--执行状态 0:失败 1:成功 AS_YHMSG0 out varchar ,--存储过程提示的错误信息 AS_SYSMSG out varchar ,--系统提示的错误信息 AD_XJYE00 out number ,--病人对应账户的现金余额 AD_ZZYE00 out number ,--病人对应账户的转账余额 AD_JZDH00 out number ,--病人结账单号 AD_ZFDJH0 out number ,--病人退费记录对应的单据号 AD_GRDJH0 out number ,--医保个人账户对应的单据号 AD_TJDJH0 out number ,--医保统筹基金对应的单据号 AD_SBZHDH out number ,--商保个人帐户单据流水号 AD_SBTJDH out number ,--商保统筹基金单据流水号 AD_JJDJH0 out number ,--保健基金单据号 AD_SYDJH0 out number ,--商业保险支付单据号 AD_SBDJH0 out number ,--商保基金支付单据号(省属三家市属九家医疗机构) AD_BJDJH0 out number ,--保健基金支付单据号(省属三家市属九家医疗机构) AD_GWYDJH out number ,--公务员补助单据号 AD_HJJE01 out number ,--合计金额 AD_ZFJZDH out number ,--自费结账单号 AD_YBJZDH out number ,--医保结账单号 AS_OUTXML out varchar2 --备用出参xml ) -- MODIFICATION HISTORY -- Person Date Comments -- zhangyc 2023.07.14 Create by 参考SP_SF_BRFY00_JS0000 by MZSF-20230718-001; -- zhangyc 2023.08.14 修正分开结算,自费结算那笔SF_JZB000.ZFJE00错误 as LS_SQLSTR varchar2(4000);--Sql字符 LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_COUNT0 number(12,4); LS_BRXM00 BM_BRXXB0.BRXM00%type; --病人姓名 LS_BRXB00 BM_BRXXB0.BRXB00%type; --病人性别 LS_YBBRLB BM_BRXXB0.YBBRLB%type; --医保病人类别 LS_YBLB00 BM_BRXXB0.YBLB00%type; --医保类别 LS_FBBH00 BM_BRXXB0.FBBH00%type; --病人费别 LS_YBZXLB IC_YBBRLB.YBZXLB%type; --医保中心类别编码 PRO_IN_YBDJH0 SF_BRFY00.YBDJH0%type; --医保单据流水号 PRO_IN_KSRQ00 SF_BRFY00.CZRQ00%type; --开始日期 PRO_IN_JSRQ00 SF_BRFY00.CZRQ00%type; --结束日期 PRO_IN_GHH000 SF_BRFY00.MZH000%type; --病人挂号号 PRO_IN_ICKH00 IC_YHXX00.ICKH00%type; --就诊卡号 PRO_IN_BRID00 SF_BRFY00.BRID00%type; --病人ID PRO_IN_JFLBID SF_BRFY00.JFLBID%type; --病人交费类别ID PRO_IN_XM0000 BM_BRXXB0.BRXM00%type; --病人姓名 PRO_IN_XB0000 BM_BRXXB0.BRXB00%type; --病人性别 PRO_IN_BRFB00 SF_BRFY00.BRFB00%type; --病人费别 PRO_IN_BRZJE0 SF_BRFY00.HJJE00%type; --病人费用总金额 PRO_IN_JZJE00 SF_BRFY00.HJJE00%type; --记账金额 PRO_IN_GFJE00 SF_BRFY00.HJJE00%type; --公费金额 PRO_IN_HJJE00 SF_BRFY00.HJJE00%type; --合计应收金额=自付金额-减免金额 PRO_IN_JMJE00 SF_BRFY00.HJJE00%type; --减免金额 PRO_IN_ZPZH00 BM_BRXXB0.YBLB00%type; --病人所属医保中心的编号 PRO_IN_GRZHZF SF_BRFY00.HJJE00%type; --个人医疗账户支付(医保返回) PRO_IN_TCJJZF SF_BRFY00.HJJE00%type; --统筹基金支付(医保返回) PRO_IN_ZFJE00 SF_BRFY00.HJJE00%type; --自付金额(医保返回) PRO_IN_JZY000 SF_BRFY00.CZY000%type; --结账操作员编码 PRO_IN_JZYXM0 SF_BRFY00.CZYXM0%type; --结账操作员姓名 PRO_IN_JZYKS0 SF_BRFY00.CZYKS0%type; --结账操作员所在科室 PRO_IN_JMYY00 varchar2(100); --减免原因 PRO_IN_YJJXH0 varchar2(30); --打印在发票上的外部序号 PRO_IN_CZBZ00 varchar2(30); --'0':结算留账留卡,'1':结算清账退卡,'2':结算清账 PRO_IN_SFYB00 varchar2(30); --是否医保病人,'Y':医保 PRO_IN_TSBZBH YF_MZCF00.TSBZBH%type; --特殊病人病种 PRO_IN_BZJSLX number(5); --病种结算类型 0:全部费用 1:本病种+挂号费+诊查费 2:本病种+非病种全部费用 3:结算本病种费用 4:只结算非特殊病种费用 PRO_IN_SFDYFP varchar2(30); --是否打印发票,N为否,Y为是 PRO_OUT_XJYE00 SF_BRZHXX.XJYE00%type; --病人对应账户的现金余额 PRO_OUT_ZZYE00 SF_BRZHXX.ZZYE00%type; --病人对应账户的转账余额 PRO_OUT_JZDH00 SF_BRFY00.JZDH00%type; --病人结账单号 PRO_OUT_ZFDJH0 SF_BRFY00.DJH000%type; --病人退费记录对应的单据号 PRO_OUT_GRDJH0 SF_BRFY00.DJH000%type; --医保个人账户对应的单据号 PRO_OUT_TJDJH0 SF_BRFY00.DJH000%type; --医保统筹基金对应的单据号 PRO_OUT_SBZHDH SF_BRFY00.DJH000%type; --商保个人帐户单据流水号 PRO_OUT_SBTJDH SF_BRFY00.DJH000%type; --商保统筹基金单据流水号 PRO_OUT_JJDJH0 SF_BRFY00.DJH000%type; --保健基金单据号 PRO_OUT_SYDJH0 SF_BRFY00.DJH000%type; --商业保险支付单据号 PRO_OUT_SBDJH0 SF_BRFY00.DJH000%type; --商保基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_BJDJH0 SF_BRFY00.DJH000%type; --保健基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_GWYDJH SF_BRFY00.DJH000%type; --公务员补助单据号 PRO_OUT_YHMSG0 varchar2(400); --存储过程提示的错误信息 PRO_OUT_SYSMSG varchar2(400); --系统提示的错误信息 PRO_OUT_HJJE01 SF_BRFY00.HJJE00%type; --合计金额 PRO_IN_MSTID0 varchar2(50); --健康通(民生通ID) PRO_IN_MSTYE0 varchar2(50); --健康通(民生通)余额 PRO_IN_WBPJLY varchar2(50); --外部票据来源 02 博思发票 PRO_IN_FPDYBZ varchar2(50);--发票打印标志 0:结算单 1:正式发票 2:非正式发票 3:发票证明 PRO_IN_YBTYPE varchar2(50);--医保接口标志 -1:自费 0:福建版本 1:国家基线版 PRO_IN_INTXML varchar2(1000);--备用xml PRO_IN_SFDZPJ varchar2(50);--是否电子票据 0:否 1:是 PRO_IN_ID0000 varchar2(50);--中间表ID=SF_FYXX00_DJH000.ID0000 PRO_IN_FKLSH0 varchar2(50);--分开结算流水号 PRO_IN_FKJSLX varchar2(50);--分开结算类型 FYCF_ZF:自费处方 FYCF_ZC:正常处方 PRO_IN_FKJZDH number(12,4);--分开结算单号 PRO_IN_FKJZJE number(12,4); --分开结算金额 begin --变量初始化 AS_ZXZT00 :='0';--执行状态 0:失败 1:成功 AD_JZDH00 :=0;--结账单号 AD_ZFJZDH :=0;--自费结账单号 AD_YBJZDH :=0;--医保结账单号 AS_YHMSG0 :=null;--存储过程提示的错误信息 AS_SYSMSG :=null;--系统提示的错误信息 AD_XJYE00 :=0;--病人对应账户的现金余额 AD_ZZYE00 :=0;--病人对应账户的转账余额 AD_JZDH00 :=0;--病人结账单号 AD_ZFDJH0 :=0;--病人退费记录对应的单据号 AD_GRDJH0 :=0;--医保个人账户对应的单据号 AD_TJDJH0 :=0;--医保统筹基金对应的单据号 AD_SBZHDH :=0;--商保个人帐户单据流水号 AD_SBTJDH :=0;--商保统筹基金单据流水号 AD_JJDJH0 :=0;--保健基金单据号 AD_SYDJH0 :=0;--商业保险支付单据号 AD_SBDJH0 :=0;--商保基金支付单据号(省属三家市属九家医疗机构) AD_BJDJH0 :=0;--保健基金支付单据号(省属三家市属九家医疗机构) AD_GWYDJH :=0;--公务员补助单据号 AD_HJJE01 :=0;--合计金额 AD_ZFJZDH :=0;--自费结账单号 AD_YBJZDH :=0;--医保结账单号 AS_OUTXML :=null;--备用出参xml --查找病人基本信息 begin select A.YBBRLB,A.FBBH00,A.YBLB00,B.YBZXLB,A.BRXM00,A.BRXB00 into LS_YBBRLB,LS_FBBH00,LS_YBLB00,LS_YBZXLB,LS_BRXM00,LS_BRXB00 from BM_BRXXB0 A,IC_YBBRLB B where A.FBBH00=B.FBBH00 and A.YBLB00=B.YBLB00 and A.BRID00 = AD_BRID00; exception when others then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:='未找到有效的病人基本信息!'; AS_SYSMSG:=AS_YHMSG0; return; end; --变量赋值 PRO_IN_YBDJH0 :=AS_YBDJH0; --医保单据流水号 PRO_IN_KSRQ00 :=AS_KSRQ00; --开始日期 PRO_IN_JSRQ00 :=AS_JSRQ00; --结束日期 PRO_IN_GHH000 :=AS_GHH000; --病人挂号号 PRO_IN_ICKH00 :=AS_ICKH00; --就诊卡号 PRO_IN_BRID00 :=AD_BRID00; --病人ID PRO_IN_JFLBID :=AD_JFLBID; --病人交费类别ID PRO_IN_XM0000 :=LS_BRXM00; --病人姓名 PRO_IN_XB0000 :=LS_BRXB00; --病人性别 PRO_IN_BRFB00 :=LS_FBBH00; --病人费别 PRO_IN_BRZJE0 :=AD_BRZJE0; --病人费用总金额 PRO_IN_JZJE00 :=AD_JZJE00; --记账金额 PRO_IN_GFJE00 :=AD_GFJE00; --公费金额 PRO_IN_HJJE00 :=AD_HJJE00; --合计应收金额=自付金额-减免金额 PRO_IN_JMJE00 :=AD_JMJE00; --减免金额 PRO_IN_ZPZH00 :=LS_YBLB00; --病人所属医保中心的编号 PRO_IN_GRZHZF :=AD_GRZHZF; --个人医疗账户支付(医保返回) PRO_IN_TCJJZF :=AD_TCJJZF; --统筹基金支付(医保返回) PRO_IN_ZFJE00 :=AD_ZFJE00; --自付金额(医保返回) PRO_IN_JZY000 :=AD_JZY000; --结账操作员编码 PRO_IN_JZYXM0 :=AS_JZYXM0; --结账操作员姓名 PRO_IN_JZYKS0 :=AD_JZYKS0; --结账操作员所在科室 PRO_IN_JMYY00 :=substrb(AS_JMYY00,1,100); --减免原因 PRO_IN_YJJXH0 :=AS_YJJXH0; --打印在发票上的外部序号 PRO_IN_CZBZ00 :=AS_CZBZ00; --'0':结算留账留卡,'1':结算清账退卡,'2':结算清账 PRO_IN_SFYB00 :=AS_SFYB00; --是否医保病人,'Y':医保 PRO_IN_TSBZBH :=AS_TSBZBH; --特殊病人病种 PRO_IN_BZJSLX :=AS_BZJSLX; --病种结算类型 0:全部费用 1:本病种+挂号费+诊查费 2:本病种+非病种全部费用 3:结算本病种费用 4:只结算非特殊病种费用 PRO_IN_SFDYFP :=AS_SFDYFP; --是否打印发票,N为否,Y为是 PRO_IN_MSTID0 :=AD_MSTID0; --健康通(民生通ID) PRO_IN_MSTYE0 :=AD_MSTYE0; --健康通(民生通)余额 PRO_IN_WBPJLY :=AS_WBPJLY; --外部票据来源 02 博思发票 PRO_IN_FPDYBZ :=AS_FPDYBZ;--发票打印标志 0:结算单 1:正式发票 2:非正式发票 3:发票证明 PRO_IN_YBTYPE :=AS_YBTYPE;--医保接口标志 -1:自费 0:福建版本 1:国家基线版 PRO_IN_INTXML :=substrb(AS_INTXML,1,1000);--备用xml PRO_IN_SFDZPJ :=AS_SFDZPJ;--是否电子票据 0:否 1:是 PRO_IN_ID0000 :=AS_ID0000;--中间表ID=SF_FYXX00_DJH000.ID0000 PRO_IN_FKLSH0 :=AS_FKLSH0;--分开结算流水号 PRO_IN_FKJSLX :=null;--分开结算类型 FYCF_ZF:自费处方 FYCF_ZC:正常处方 PRO_IN_FKJZDH :=0;--分开结算单号 PRO_IN_FKJZJE :=0; --分开结算金额 if nvl(AS_SFFKJS,'0') in ('0') then --是否分开结算 0:不分开 --正常单笔结算--begin--- PRO_IN_FKLSH0 :=null; --分开结算流水号 PRO_OUT_XJYE00 :=0; --病人对应账户的现金余额 PRO_OUT_ZZYE00 :=0; --病人对应账户的转账余额 PRO_OUT_JZDH00 :=0; --病人结账单号 PRO_OUT_ZFDJH0 :=0; --病人退费记录对应的单据号 PRO_OUT_GRDJH0 :=0; --医保个人账户对应的单据号 PRO_OUT_TJDJH0 :=0; --医保统筹基金对应的单据号 PRO_OUT_SBZHDH :=0; --商保个人帐户单据流水号 PRO_OUT_SBTJDH :=0; --商保统筹基金单据流水号 PRO_OUT_JJDJH0 :=0; --保健基金单据号 PRO_OUT_SYDJH0 :=0; --商业保险支付单据号 PRO_OUT_SBDJH0 :=0; --商保基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_BJDJH0 :=0; --保健基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_GWYDJH :=0; --公务员补助单据号 PRO_OUT_YHMSG0 :=null; --存储过程提示的错误信息 PRO_OUT_SYSMSG :=null; --系统提示的错误信息 PRO_OUT_HJJE01 :=0; --合计金额 begin SP_SF_BRFY00_JS0000( PRO_IN_YBDJH0,PRO_IN_KSRQ00,PRO_IN_JSRQ00,PRO_IN_GHH000,PRO_IN_ICKH00,PRO_IN_BRID00,PRO_IN_JFLBID,PRO_IN_XM0000,PRO_IN_XB0000,PRO_IN_BRFB00, PRO_IN_BRZJE0,PRO_IN_JZJE00,PRO_IN_GFJE00,PRO_IN_HJJE00,PRO_IN_JMJE00,PRO_IN_ZPZH00,PRO_IN_GRZHZF,PRO_IN_TCJJZF,PRO_IN_ZFJE00,PRO_IN_JZY000, PRO_IN_JZYXM0,PRO_IN_JZYKS0,PRO_IN_JMYY00,PRO_IN_YJJXH0,PRO_IN_CZBZ00,PRO_IN_SFYB00,PRO_IN_TSBZBH,PRO_IN_BZJSLX,PRO_IN_SFDYFP, PRO_OUT_XJYE00,PRO_OUT_ZZYE00,PRO_OUT_JZDH00,PRO_OUT_ZFDJH0,PRO_OUT_GRDJH0,PRO_OUT_TJDJH0,PRO_OUT_SBZHDH,PRO_OUT_SBTJDH, PRO_OUT_JJDJH0,PRO_OUT_SYDJH0,PRO_OUT_SBDJH0,PRO_OUT_BJDJH0,PRO_OUT_GWYDJH,PRO_OUT_YHMSG0,PRO_OUT_SYSMSG,PRO_OUT_hjje01, PRO_IN_MSTID0,PRO_IN_MSTYE0,PRO_IN_WBPJLY,PRO_IN_FPDYBZ,PRO_IN_YBTYPE,PRO_IN_INTXML,PRO_IN_SFDZPJ,PRO_IN_ID0000, PRO_IN_FKLSH0,PRO_IN_FKJSLX,PRO_IN_FKJZDH,PRO_IN_FKJZJE ); if trim(PRO_OUT_YHMSG0) is not null then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb(PRO_OUT_YHMSG0,1,200); AS_YHMSG0:=AS_YHMSG0; return; else AD_XJYE00 :=PRO_OUT_XJYE00;--病人对应账户的现金余额 AD_ZZYE00 :=PRO_OUT_ZZYE00;--病人对应账户的转账余额 AD_JZDH00 :=PRO_OUT_JZDH00;--病人结账单号 AD_ZFDJH0 :=PRO_OUT_ZFDJH0;--病人退费记录对应的单据号 AD_GRDJH0 :=PRO_OUT_GRDJH0;--医保个人账户对应的单据号 AD_TJDJH0 :=PRO_OUT_TJDJH0;--医保统筹基金对应的单据号 AD_SBZHDH :=PRO_OUT_SBZHDH;--商保个人帐户单据流水号 AD_SBTJDH :=PRO_OUT_SBTJDH;--商保统筹基金单据流水号 AD_JJDJH0 :=PRO_OUT_JJDJH0;--保健基金单据号 AD_SYDJH0 :=PRO_OUT_SYDJH0;--商业保险支付单据号 AD_SBDJH0 :=PRO_OUT_SBDJH0;--商保基金支付单据号(省属三家市属九家医疗机构) AD_BJDJH0 :=PRO_OUT_BJDJH0;--保健基金支付单据号(省属三家市属九家医疗机构) AD_GWYDJH :=PRO_OUT_GWYDJH;--公务员补助单据号 AD_ZFJZDH :=0;--自费结账单号 AD_YBJZDH :=0;--医保结账单号 end if; exception when others then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb('门诊费用结算失败!错误原因:'||sqlerrm,1,200); AS_YHMSG0:=AS_YHMSG0; return; end; --正常单笔结算--end--- elsif nvl(AS_SFFKJS,'0') in ('1') then --是否分开结算 1:分开结算 --分开结算--begin--- --步骤1:先结算正常处方 begin select HJJE00 as BRZJE0,JZJE00 as JZJE00,GFJE00 as GFJE00,HJJE00 as HJJE00 into PRO_IN_BRZJE0, PRO_IN_JZJE00,PRO_IN_GFJE00,PRO_IN_HJJE00 from SF_FYXX00_TEMP00 where BRID00=AD_BRID00 and ID0000=AS_YBCFID; exception when others then PRO_IN_BRZJE0 :=0; --病人费用总金额 PRO_IN_JZJE00 :=0; --记账金额 PRO_IN_GFJE00 :=0; --公费金额 PRO_IN_HJJE00 :=0; --合计应收金额=自付金额-减免金额 end; PRO_IN_ID0000 :=AS_YBCFID;--中间表ID=SF_FYXX00_DJH000.ID0000 PRO_IN_FKLSH0 :=AS_FKLSH0;--分开结算流水号 PRO_IN_FKJSLX :='FYCF_ZC';--分开结算类型 FYCF_ZF:自费处方 FYCF_ZC:正常处方 PRO_IN_FKJZDH :=0;--分开结算单号 PRO_IN_FKJZJE :=nvl(AS_ZFCFJE,0); --分开结算金额 PRO_OUT_XJYE00 :=0; --病人对应账户的现金余额 PRO_OUT_ZZYE00 :=0; --病人对应账户的转账余额 PRO_OUT_JZDH00 :=0; --病人结账单号 PRO_OUT_ZFDJH0 :=0; --病人退费记录对应的单据号 PRO_OUT_GRDJH0 :=0; --医保个人账户对应的单据号 PRO_OUT_TJDJH0 :=0; --医保统筹基金对应的单据号 PRO_OUT_SBZHDH :=0; --商保个人帐户单据流水号 PRO_OUT_SBTJDH :=0; --商保统筹基金单据流水号 PRO_OUT_JJDJH0 :=0; --保健基金单据号 PRO_OUT_SYDJH0 :=0; --商业保险支付单据号 PRO_OUT_SBDJH0 :=0; --商保基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_BJDJH0 :=0; --保健基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_GWYDJH :=0; --公务员补助单据号 PRO_OUT_YHMSG0 :=null; --存储过程提示的错误信息 PRO_OUT_SYSMSG :=null; --系统提示的错误信息 PRO_OUT_HJJE01 :=0; --合计金额 if nvl(PRO_IN_BRZJE0,0)<=0 then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:='费用拆分结算异常!,错误原因:未找到有效的正常处方数据'; AS_YHMSG0:=AS_YHMSG0; return; end if; begin SP_SF_BRFY00_JS0000( PRO_IN_YBDJH0,PRO_IN_KSRQ00,PRO_IN_JSRQ00,PRO_IN_GHH000,PRO_IN_ICKH00,PRO_IN_BRID00,PRO_IN_JFLBID,PRO_IN_XM0000,PRO_IN_XB0000,PRO_IN_BRFB00, PRO_IN_BRZJE0,PRO_IN_JZJE00,PRO_IN_GFJE00,PRO_IN_HJJE00,PRO_IN_JMJE00,PRO_IN_ZPZH00,PRO_IN_GRZHZF,PRO_IN_TCJJZF,PRO_IN_ZFJE00,PRO_IN_JZY000, PRO_IN_JZYXM0,PRO_IN_JZYKS0,PRO_IN_JMYY00,PRO_IN_YJJXH0,PRO_IN_CZBZ00,PRO_IN_SFYB00,PRO_IN_TSBZBH,PRO_IN_BZJSLX,PRO_IN_SFDYFP, PRO_OUT_XJYE00,PRO_OUT_ZZYE00,PRO_OUT_JZDH00,PRO_OUT_ZFDJH0,PRO_OUT_GRDJH0,PRO_OUT_TJDJH0,PRO_OUT_SBZHDH,PRO_OUT_SBTJDH, PRO_OUT_JJDJH0,PRO_OUT_SYDJH0,PRO_OUT_SBDJH0,PRO_OUT_BJDJH0,PRO_OUT_GWYDJH,PRO_OUT_YHMSG0,PRO_OUT_SYSMSG,PRO_OUT_hjje01, PRO_IN_MSTID0,PRO_IN_MSTYE0,PRO_IN_WBPJLY,PRO_IN_FPDYBZ,PRO_IN_YBTYPE,PRO_IN_INTXML,PRO_IN_SFDZPJ,PRO_IN_ID0000, PRO_IN_FKLSH0,PRO_IN_FKJSLX,PRO_IN_FKJZDH,PRO_IN_FKJZJE ); if trim(PRO_OUT_YHMSG0) is not null then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb(PRO_OUT_YHMSG0,1,200); AS_YHMSG0:=AS_YHMSG0; return; else AD_XJYE00 :=PRO_OUT_XJYE00;--病人对应账户的现金余额 AD_ZZYE00 :=PRO_OUT_ZZYE00;--病人对应账户的转账余额 AD_JZDH00 :=PRO_OUT_JZDH00;--病人结账单号 AD_ZFDJH0 :=PRO_OUT_ZFDJH0;--病人退费记录对应的单据号 AD_GRDJH0 :=PRO_OUT_GRDJH0;--医保个人账户对应的单据号 AD_TJDJH0 :=PRO_OUT_TJDJH0;--医保统筹基金对应的单据号 AD_SBZHDH :=PRO_OUT_SBZHDH;--商保个人帐户单据流水号 AD_SBTJDH :=PRO_OUT_SBTJDH;--商保统筹基金单据流水号 AD_JJDJH0 :=PRO_OUT_JJDJH0;--保健基金单据号 AD_SYDJH0 :=PRO_OUT_SYDJH0;--商业保险支付单据号 AD_SBDJH0 :=PRO_OUT_SBDJH0;--商保基金支付单据号(省属三家市属九家医疗机构) AD_BJDJH0 :=PRO_OUT_BJDJH0;--保健基金支付单据号(省属三家市属九家医疗机构) AD_GWYDJH :=PRO_OUT_GWYDJH;--公务员补助单据号 AD_YBJZDH :=PRO_OUT_JZDH00;--医保结账单号 end if; exception when others then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb('门诊费用结算(正常处方)失败!错误原因:'||sqlerrm,1,200); AS_YHMSG0:=AS_YHMSG0; return; end; --步骤2:自费处方结算 if nvl(AS_JSTYPE,'0')='0' then --结算类型 '0':正式的结算,'1':预结算 if AS_SFDZPJ='1' or AS_FPDYBZ in ('0','2','3') then PRO_IN_YJJXH0 :='0';--发票序号 else select PJDQH0 into PRO_IN_YJJXH0 from BM_PJLYQK where PJLXBM = 1 and SYBZ00 ='Y' and PJSYR0=AD_JZY000; end if; begin select HJJE00 as BRZJE0,JZJE00 as JZJE00,GFJE00 as GFJE00,HJJE00 as HJJE00 into PRO_IN_BRZJE0, PRO_IN_JZJE00,PRO_IN_GFJE00,PRO_IN_HJJE00 from SF_FYXX00_TEMP00 where BRID00=AD_BRID00 and ID0000=AS_ZFCFID; exception when others then PRO_IN_BRZJE0 :=0; --病人费用总金额 PRO_IN_JZJE00 :=0; --记账金额 PRO_IN_GFJE00 :=0; --公费金额 PRO_IN_HJJE00 :=0; --合计应收金额=自付金额-减免金额 end; PRO_IN_BRZJE0 :=PRO_IN_BRZJE0; --病人费用总金额 PRO_IN_JZJE00 :=PRO_IN_JZJE00; --记账金额 PRO_IN_GFJE00 :=PRO_IN_GFJE00; --公费金额 PRO_IN_HJJE00 :=PRO_IN_HJJE00; --合计应收金额=自付金额-减免金额 PRO_IN_JMJE00 :=0; --减免金额 PRO_IN_GRZHZF :=0; --个人医疗账户支付(医保返回) PRO_IN_TCJJZF :=0; --统筹基金支付(医保返回) PRO_IN_ZFJE00 :=PRO_IN_HJJE00; --自付金额(医保返回) PRO_IN_ID0000 :=AS_ZFCFID;--中间表ID=SF_FYXX00_DJH000.ID0000 PRO_IN_FKLSH0 :=AS_FKLSH0;--分开结算流水号 PRO_IN_FKJSLX :='FYCF_ZF';--分开结算类型 FYCF_ZF:自费处方 FYCF_ZC:正常处方 PRO_IN_FKJZDH :=AD_YBJZDH;--分开结算单号 PRO_IN_FKJZJE :=nvl(AS_YBCFJE,0); --分开结算金额 PRO_OUT_XJYE00 :=0; --病人对应账户的现金余额 PRO_OUT_ZZYE00 :=0; --病人对应账户的转账余额 PRO_OUT_JZDH00 :=0; --病人结账单号 PRO_OUT_ZFDJH0 :=0; --病人退费记录对应的单据号 PRO_OUT_GRDJH0 :=0; --医保个人账户对应的单据号 PRO_OUT_TJDJH0 :=0; --医保统筹基金对应的单据号 PRO_OUT_SBZHDH :=0; --商保个人帐户单据流水号 PRO_OUT_SBTJDH :=0; --商保统筹基金单据流水号 PRO_OUT_JJDJH0 :=0; --保健基金单据号 PRO_OUT_SYDJH0 :=0; --商业保险支付单据号 PRO_OUT_SBDJH0 :=0; --商保基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_BJDJH0 :=0; --保健基金支付单据号(省属三家市属九家医疗机构) PRO_OUT_GWYDJH :=0; --公务员补助单据号 PRO_OUT_YHMSG0 :=null; --存储过程提示的错误信息 PRO_OUT_SYSMSG :=null; --系统提示的错误信息 PRO_OUT_HJJE01 :=0; --合计金额 if nvl(PRO_IN_BRZJE0,0)<=0 then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:='费用拆分结算异常!,错误原因:未找到有效的自费处方数据'; AS_YHMSG0:=AS_YHMSG0; return; end if; begin SP_SF_BRFY00_JS0000( PRO_IN_YBDJH0,PRO_IN_KSRQ00,PRO_IN_JSRQ00,PRO_IN_GHH000,PRO_IN_ICKH00,PRO_IN_BRID00,PRO_IN_JFLBID,PRO_IN_XM0000,PRO_IN_XB0000,PRO_IN_BRFB00, PRO_IN_BRZJE0,PRO_IN_JZJE00,PRO_IN_GFJE00,PRO_IN_HJJE00,PRO_IN_JMJE00,PRO_IN_ZPZH00,PRO_IN_GRZHZF,PRO_IN_TCJJZF,PRO_IN_ZFJE00,PRO_IN_JZY000, PRO_IN_JZYXM0,PRO_IN_JZYKS0,PRO_IN_JMYY00,PRO_IN_YJJXH0,PRO_IN_CZBZ00,PRO_IN_SFYB00,PRO_IN_TSBZBH,PRO_IN_BZJSLX,PRO_IN_SFDYFP, PRO_OUT_XJYE00,PRO_OUT_ZZYE00,PRO_OUT_JZDH00,PRO_OUT_ZFDJH0,PRO_OUT_GRDJH0,PRO_OUT_TJDJH0,PRO_OUT_SBZHDH,PRO_OUT_SBTJDH, PRO_OUT_JJDJH0,PRO_OUT_SYDJH0,PRO_OUT_SBDJH0,PRO_OUT_BJDJH0,PRO_OUT_GWYDJH,PRO_OUT_YHMSG0,PRO_OUT_SYSMSG,PRO_OUT_hjje01, PRO_IN_MSTID0,PRO_IN_MSTYE0,PRO_IN_WBPJLY,PRO_IN_FPDYBZ,PRO_IN_YBTYPE,PRO_IN_INTXML,PRO_IN_SFDZPJ,PRO_IN_ID0000, PRO_IN_FKLSH0,PRO_IN_FKJSLX,PRO_IN_FKJZDH,PRO_IN_FKJZJE ); if trim(PRO_OUT_YHMSG0) is not null then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb(PRO_OUT_YHMSG0,1,200); AS_YHMSG0:=AS_YHMSG0; return; else AD_XJYE00 :=PRO_OUT_XJYE00;--病人对应账户的现金余额 AD_ZZYE00 :=PRO_OUT_ZZYE00;--病人对应账户的转账余额 AD_ZFJZDH :=PRO_OUT_JZDH00;--自费结账单号 end if; exception when others then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb('门诊费用结算(自费处方)失败!错误原因:'||sqlerrm,1,200); AS_YHMSG0:=AS_YHMSG0; return; end; --修改正常处方那笔 update SF_JZB000 Set FKJZDH=AD_ZFJZDH --分开结算单号 where BRID00=AD_BRID00 and JZDH00=AD_YBJZDH; end if; --分开结算--end--- else AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:='费用结算异常!错误原因:是否分开结算传参数错误'; AS_YHMSG0:=AS_YHMSG0; return; end if; if AS_COMMIT='Y' then commit; end if; AS_ZXZT00 :='1'; --0:失败 1:成功 exception when no_data_found then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb('门诊费用结算失败!错误原因:'||sqlerrm,1,200); AS_SYSMSG:=AS_YHMSG0; when others then AS_ZXZT00:='0';--执行状态 0:失败 1:成功 AS_YHMSG0:=substrb('门诊费用结算失败!错误原因:'||sqlerrm,1,200); AS_SYSMSG:=AS_YHMSG0; end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%